/*
 *   Copyright (c) 2012, Nokia Siemens Networks
 *   All rights reserved.
 *
 *   Redistribution and use in source and binary forms, with or without
 *   modification, are permitted provided that the following conditions are met:
 *       * Redistributions of source code must retain the above copyright
 *         notice, this list of conditions and the following disclaimer.
 *       * Redistributions in binary form must reproduce the above copyright
 *         notice, this list of conditions and the following disclaimer in the
 *         documentation and/or other materials provided with the distribution.
 *       * Neither the name of Nokia Siemens Networks nor the
 *         names of its contributors may be used to endorse or promote products
 *         derived from this software without specific prior written permission.
 *
 *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 *   ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 *   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 *   DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
 *   DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 *   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 *   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 *   ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 *   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 

/**
 * @file
 *
 * Event Machine configuration options
 *
 */
 
#ifndef EVENT_MACHINE_CONFIG_H
#define EVENT_MACHINE_CONFIG_H



#ifdef __cplusplus
extern "C" {
#endif



/**
 * Maximum number of queues.
 *
 * Includes all queue types: dynamic, static, internal
 */
#define EM_MAX_QUEUES               (128 * 1024) // Keep power-of-two, keep smaller than EM_QUEUE_UNDEF


/**
 * Max queue name string lenght
 */
#define EM_QUEUE_NAME_LEN           32


/**
 * Total EOs
 */
#define EM_MAX_EOS                  32768


/**
 * Max EO name string lenght
 */
#define EM_EO_NAME_LEN              32


/**
 * Event groups
 */
#define EM_MAX_EVENT_GROUPS         1024
#define EM_EVENT_GROUP_MAX_NOTIF    6





/*
 *
 * Error handling and reporting
 ***************************************
 */


/**
 * Conditionally compiled error checking level, range 0...3
 * Level 0 gives best performance, but does not do any
 * runtime argument checking (like NULL pointer etc)
 * Level 1 adds minimum checks
 * Level 2 adds most checks except the slowest ones
 * Level 3 adds all checks and gives lowest performance (for initial testing only)
 */
#define EM_CHECK_LEVEL              1



#ifdef __cplusplus
}
#endif


#endif
